package com.sc.entity.table;

import com.mybatisflex.core.query.QueryColumn;
import com.mybatisflex.core.table.TableDef;

/**
 * 员工表 表定义层。
 *
 * @author JoeZhou
 * @since 2024-09-11
 */
public class EmpTableDef extends TableDef {

    /**
     * 员工表
     */
    public static final EmpTableDef EMP = new EmpTableDef();

    /**
     * ID
     */
    public final QueryColumn ID = new QueryColumn(this, "ID");

    /**
     * 编号
     */
    public final QueryColumn ENO = new QueryColumn(this, "eno");

    /**
     * 头像
     */
    public final QueryColumn AVATAR = new QueryColumn(this, "avatar");

    /**
     * 头像
     */
    public final QueryColumn WECHAT = new QueryColumn(this, "wechat");

    /**
     * 职位
     */
    public final QueryColumn JOB = new QueryColumn(this, "job");

    /**
     * 备注
     */
    public final QueryColumn INFO = new QueryColumn(this, "info");

    /**
     * 姓名
     */
    public final QueryColumn NAME = new QueryColumn(this, "name");

    /**
     * 邮箱
     */
    public final QueryColumn EMAIL = new QueryColumn(this, "email");

    /**
     * 联系电话
     */
    public final QueryColumn PHONE = new QueryColumn(this, "phone");

    /**
     * 部门ID
     */
    public final QueryColumn DEPT_ID = new QueryColumn(this, "dept_id");

    /**
     * 性别
     */
    public final QueryColumn GENDER = new QueryColumn(this, "gender");

    
    public final QueryColumn ID_CARD = new QueryColumn(this, "id_card");

    /**
     * 密码
     */
    public final QueryColumn PASSWD = new QueryColumn(this, "passwd");

    /**
     * 状态
     */
    public final QueryColumn STATUS = new QueryColumn(this, "status");

    /**
     * 地址
     */
    public final QueryColumn ADDRESS = new QueryColumn(this, "address");

    /**
     * 创建时间
     */
    public final QueryColumn CREATED = new QueryColumn(this, "created");

    /**
     * 更新时间
     */
    public final QueryColumn UPDATED = new QueryColumn(this, "updated");

    /**
     * 版本
     */
    public final QueryColumn VERSION = new QueryColumn(this, "version");

    /**
     * 入职日期
     */
    public final QueryColumn HIREDATE = new QueryColumn(this, "hiredate");

    
    public final QueryColumn IS_DELETE = new QueryColumn(this, "is_delete");

    /**
     * 紧急联系人姓名
     */
    public final QueryColumn EMERGENCY_CONTACT_NAME = new QueryColumn(this, "emergency_contact_name");

    /**
     * 紧急联系人电话
     */
    public final QueryColumn EMERGENCY_CONTACT_PHONE = new QueryColumn(this, "emergency_contact_phone");

    /**
     * 所有字段。
     */
    public final QueryColumn ALL_COLUMNS = new QueryColumn(this, "*");

    /**
     * 默认字段，不包含逻辑删除或者 large 等字段。
     */
    public final QueryColumn[] DEFAULT_COLUMNS = new QueryColumn[]{ID, NAME, ENO, GENDER, ID_CARD, HIREDATE, JOB, EMAIL, PHONE, EMERGENCY_CONTACT_NAME, EMERGENCY_CONTACT_PHONE, ADDRESS, PASSWD, DEPT_ID, INFO, STATUS, CREATED, UPDATED, VERSION};

    public EmpTableDef() {
        super("study_club", "ems_emp");
    }

}
